package com.ruoyi.system.service;

import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.system.domain.PStoreProduct;
import com.ruoyi.system.domain.PStoreSeckill;
import com.ruoyi.system.domain.bo.PStoreProductBo;
import com.ruoyi.system.domain.vo.PStoreProductVo;

import java.util.Collection;
import java.util.List;

/**
 * 商品Service接口
 *
 * @author ruoyi
 * @date 2022-08-01
 */
public interface IPStoreProductService {

    /**
     * 查询商品
     */
    PStoreProductVo queryById(Long id);

    /**
     * 查询商品列表
     */
    TableDataInfo<PStoreProductVo> queryPageList(PStoreProductBo bo, PageQuery pageQuery);

    /**
     * 查询商品列表
     */
    List<PStoreProductVo> queryList(PStoreProductBo bo);

    /**
     * 修改商品
     */
    Boolean insertByBo(PStoreProductBo bo);

    /**
     * 修改商品
     */
    Boolean updateByBo(PStoreProductBo bo);

    /**
     * 校验并批量删除商品信息
     */
    Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);

    /**
     * 自定义查询列表
     */
    TableDataInfo<PStoreProduct> queryPageMyList(PStoreProduct bo, PageQuery pageQuery);

    /**
     * 自定义更新
     */
    boolean updateByMyBo(PStoreProductBo bo);

    /**
     * 爆款推荐查询
     * @param pageQuery
     * @return
     */
    TableDataInfo<PStoreProduct> hostList(PageQuery pageQuery);

    /**
     * 精品推荐查询
     * @param pageQuery
     * @return
     */
    TableDataInfo<PStoreProduct> bestList(PageQuery pageQuery);

    /**
     * 限时秒杀查询
     * @param pageQuery
     * @return
     */
    TableDataInfo<PStoreSeckill> seckillList(PageQuery pageQuery);

    /**
     * 分类查询
     * @param cateId
     * @param pageQuery
     * @return
     */
    TableDataInfo<PStoreProduct> listByCateId(String cateId, PageQuery pageQuery);

    /**
     * 积分商城列表
     * @param pageQuery
     * @return
     */
    TableDataInfo<PStoreProduct> integralProductList(PageQuery pageQuery);
}
